package com.ygqh.baby.service;

import java.util.Date;
import java.util.List;

import com.ygqh.baby.ao.PromotionStatus;
import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.model.YgProduct4ListModel;
import com.ygqh.baby.model.YgProductPackModel;
import com.ygqh.baby.po.YgProduct;
import com.ygqh.baby.po.YgProductPack;

public interface YgProductPackService {

	List<YgProductPack> find();

	int findCount();

	YgProductPack findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	int save(YgProductPack ygProductPack);

	int update(YgProductPack ygProductPack);

	int saveOrUpdate(YgProductPack ygProductPack);

	ResultSet<YgProductPack> search(QueryInfo queryInfo, Long supplierId, PromotionStatus pStatus, Date startDate, Date endDate, String q);

	ResultSet<YgProduct4ListModel> findProductByPackId(QueryInfo queryInfo, Long packId);

	List<YgProduct> findProductForProductPack(QueryInfo queryInfo, String productName, Long groupId, String productStatus, Long supplierId, Long packId);

	/**
	 * 获取有效的自选包
	 *
	 * @param productId
	 *            可为空
	 * @return
	 */
	List<YgProductPackModel> findOwnProductPackList(Long productId);

	/**
	 * 获取有效的自选包
	 *
	 * @return
	 */
	List<YgProductPack> findProductPackList();

	YgProductPack findValidById(Long packId);

	/**
	 * 添加自选包时判断商品是否存在新客价
	 * 
	 * @param productIds
	 * @return
	 */
	List<YgProduct> findNewCustomByProductId(String productIds);

	/**
	 * 获取所有有效的自选包
	 * 
	 * @return
	 */
	List<YgProductPack> findNotCompleteAction(Long packId, Date startDate);

	/**
	 * 获取当前商品参加的自选包活动
	 * 
	 * @param productId
	 * @return
	 */
	YgProductPack findPackByProductId(Long productId);

	/**
	 * 获取所有参与自选包活动的商品
	 * 
	 * @Title: findProductByBack 入参
	 * @return List<YgProduct> 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年8月31日 下午1:57:26
	 * @version V1.0
	 */
	List<YgProduct> findProductByBack(Long packId);

}